package com.wn.carport.service;

import com.github.pagehelper.PageInfo;
import com.wn.carport.param.CarportParm;
import com.wn.carport.param.CarportSearchParam;
import com.wn.carport.resp.PgRe;
import com.wn.carport.vo.CarPortAreaVillageVo;
import com.wn.common.entity.MyParam;
import com.wn.common.entity.MyRsp;
import com.wn.common.pojo.AreaVillage;
import com.wn.common.pojo.CarPort;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * @BelongsProject: shared_parking
 * @BelongsPackage: com.wn.carport.service
 * @Author: 刘辉
 * @CreateTime: 2020-06-11 13:58
 * @Description:
 */
public interface CarPortService {

    /*根据商品主键查询车位信息*/
    CarPort getCarPortById(String cpId);

    /*查询所有的车位信息列表*/
    PageInfo<CarPort> getCarPortlAll(MyParam<CarPort> myParam);

    /*根据主键删除车位信息*/
    Integer deleteCarPort(String cpId);

    /*根据主键修改车位信息*/
    MyRsp updateCarPort(CarportParm carportParm);

    /*添加车位信息*/
    Integer addCartPort(CarPortAreaVillageVo carPortAreaVillageVo);

    /*根据主键物理删除*/
    Integer deleteCarPortPhy(String cpId);

    /*高级检索车位信息*/
    List<CarPort> superSearch(String superSearchKeyWord);

    /*查询出所有的地区信息*/
    List<AreaVillage> getAreaAll();

    List<AreaVillage> getAreaAll01();

    /*根据地区名称查询小区*/
    List<AreaVillage> getVillageByAreaName(String aName);

    /*根据地区id查小区*/
    List<AreaVillage> getVillageByAreaId(String aid);

    /*根据小区查看车位*/
    List<CarPort> getCarPortByVillage(String aName);

    /*查询车位数据总条数*/
    Integer getTotal();

    /*分页查询车位列表*/
    PgRe getCarPortAll03(Integer page, Integer rows,String aName);

    /*根据小区名称模糊查询车位列表*/
    List<CarPortAreaVillageVo> getCarPortByAreaVillageName(String aName);

    /*上下架*/
    Integer upDownShelf(String cpId,Integer cpStatus);

    /*根据车位查询出地区名称*/
    AreaVillage getAreaNameByCpId(String cpId);

    /*车位/区域联合 */
    CarPortAreaVillageVo getCarPortAreaVo(String cpId);

    /*根据地区名称查看下面的小区*/
    List<AreaVillage> getAreaVillagedo(String aName);


    AreaVillage getvillageIdByVname(String aName);

    /*根据车位id获取车位/价格/地区/小区*/
    CarPortAreaVillageVo getCarportVo(String cpId);

    /*根据小区名称  地区名称*/
    AreaVillage getAreaName(String aName);

    //根据车位的小区名称，获取这个小区下面所有车位对象
    MyRsp getListByVnameOrKeyword(CarportSearchParam carportSearchParam);


    //获取所有的车位
    Object carPortList(Integer page,Integer rows,Integer cpCode,String superSearchKeyWord);

    //查询所有车位 支持多条件分页排序查询
    Object getAllCarPort(MyParam<CarPort> param);

    //展示物业查看的车位信息
    Object carPortListByProperty(Integer page,Integer rows,Integer cpCode,String superSearchKeyWord,String token);

    //展示出租方的车位信息
    Object carPortListByLessor(Integer page,Integer rows,Integer cpCode,String superSearchKeyWord,String token);

    //动态添加车位
    MyRsp addCarport(CarportParm carportParm,String token);

    //出租客添加车位
    MyRsp addCarportByLessor(CarportParm carportParm, String token);

    //动态逻辑删除车位
    MyRsp deleteSomeCarport(String[] ids);


}